Scheduling methods are commonly used in a data processing system for controlling submission of different work units (for example, jobs in a batch processing). For this purpose, several types of schedulers have been proposed in the last years to automate the submission of large quantities of jobs. An example of scheduler is the “Tivoli Workload Scheduler” by IBM Corporation.
A scheduler submits the jobs according to a predefined plan, which establishes a desired flow of execution of the jobs. Whenever a job must be submitted, the scheduler dispatches an execution request to a corresponding agent; the agent directly controls the execution of the job and returns feedback information to the scheduler. In this way, the scheduler provides a single central point of control for all the jobs.
Moreover, most of the available schedulers offer additional services. Typically, the schedulers are very sophisticated in handling temporal and predecessor constraints (for example, defined by the completion of other jobs or by the availability of system resources). The schedulers can also be provided with a Graphical User Interface (GUI), which allows creating, modifying and deleting the definition of the jobs or plans, and which allows controlling and monitoring the operations performed by the scheduler. Moreover, some schedulers integrate performance monitoring, load balancing and/or reporting functions.
A drawback of the schedulers known in the art is that they are specifically designed for working in a close environment within a company. Indeed, the schedulers typically submit the work units for execution on a single computer (wherein the scheduler itself is running), or at most support the managing of a cluster of computers being connected through a private network of the company.
In any case, no scheduler known in the art can be used in an open environment to control the invocation of external services (typically provided by third parties). Indeed, the external services can be accesses in a number of ways, which are generally incompatible with the requirements of the scheduler.
This problem has been exacerbated by the widespread diffusion of the INTERNET, and particularly of web services. A web service (also called application service) consists of a collection of functions that can be exploited by other applications through an interface defined in a standardized way (irrespective of the actual implementation of the offered functions). The web services are accessed via ubiquitous protocols and data formats (such as the HTTP, SOAP and XML). In this way, the web services have become the standard platform for application integration, being the fundamental building blocks in the move to distributed computing on the INTERNET.
Therefore, the limitations of the available schedulers strongly hinders the full exploitation of the INTERNET; particularly, this impairs the interoperability of legacy applications with web services provided by third parties (for example, when implementing online transactions in e-commerce applications).